English

Web开发技术与JSP

2000-11-08 来源:中华读书报 郁朝阳 我有话说

将程序代码嵌入HTML中,由HTML负责信息的表示,程序代码负责处理的逻辑,其执行结果被重新嵌入到HTML后一起发送给客户浏览器,这便是目前开发动态交互站点最常用的技术。本文对ASP、PHP、JSP进行比较,并对

JSP进行更多介绍。

WEB三剑客:ASP、PHP、JSP

ASP(ActiveServerPages)是微软1996年底推出的技术,使用VBScript作为其缺省语言;PHP(PersonalHomePagetools)也是在同年开始推出,使用了类似C语言的脚本;而JSP是Sun属下Javasoft公司推出的技术,自然是用了Java语言。JSP宣布于1999年6月,是三者中最新的技术,以JavaServlet技术为基础,又在许多方面作了改进,并且充分借鉴了ASP和PHP的一些合理的地方。

Web应用的关键是数据库的访问。ASP采用微软的ODBC,ODBC向应用程序提供了统一的数据库访问接口,使特定数据库可以独立于应用程序;JSP采用了JDBC,这是Java与数据库的接口规范,结构类似于ODBC,但有更好的跨平台性,另外,JSP还可以使用JDBC-ODBC桥来间接使用ODBC;PHP则为不同数据库分别提供了大量的调用函数。PHP+MySQL,ASP+SQLServer以及JSP+Oracle是最常见的组合。

从所属体系来看,ASP可调用各种ActiveX组件,属于Microsoft的DNA体系,DNA集成了COM/DCOM模型和MTS、MSMQ等;JSP可以导入各种强大的Java类,包括JavaBean,并从属于J2EE/COBRA体系,值得注意的是目前JSP得到各大开发商全力支持,其中有IBM、Oracle和Netscape等;PHP则是一个开放源码组织的项目,它的支持仅来自开放源码组织,据说几个星期就更新一次;用户可自己编写外围函数,或通过更改编码并重新编译来适应各种要求和变化,PHPLIB就是最常用的一系列基库。

ASP的不足是只在Windows平台才能充分发挥其价值;对于关键的大型应用,NT平台往往无法让人放心,未来的电子商务对系统安全性和运行稳定性的要求只会越来越高,所以有时只能忍痛割爱。而PHP和JSP均可跨越各种平台。在NT上ASP是比较优先的选择;在Unix或Linux上则只能在PHP/JSP之间加以选择;平台的选择可能更为基本,而这已是一个更广泛的课题了。

PHP的不足其实是很明显的。它没有统一的数据库接口,试想如果改变了数据库平台,程序也得改变;没有特别好的框架结构,团队合作比较困难;没有组件的支持,而组件将是未来程序开发的主流;也没有像COM/DCOM/DNA或者J2EE/COBRA这样的体系支持,这样就很难适用大型应用的要求。

JSP至少也有一个缺憾。虽然JSP也是简单易学的,但无奈国内的相关资料实在太少。笔者的主页《小龙亭JSP实践之旅》(http://go18.163.com/~blueski)已提供了150多篇JSP相关文章,可供参考,故顺便在此推荐一下。另外,如果有一些Java基础,使用JSP显然会更加得心应手。笔者认为,学习和掌握Java语言应是面向未来的开发人员必修的一门课程呢。

现在的评论一般都避免强调孰优孰劣,这就像国内的搜狐、网易和新浪的地位一样敏感;其实,最好的技术乃是最实用或者最适用的技术。另外,有竞争才有发展,三种技术本身都在不断发展。只是笔者相信,JSP一定会笑傲江湖。

JSP之笑傲江湖篇

JSP在很多方面有着强大优势:

JSP继承了Java的各种优势,符合“writeonce,runanywhere”的原则。Java能通过异常处理机制来有效防止系统的崩溃;利用沙箱机制和内存管理可提高系统安全性及防止内存泄漏。实际上JSP在页面中可以嵌入几乎全部的Java语句(称为Scriptlets)。值得一提的是,下一代ASP也将相应地以VB取代VBScript来提升总体的性能,而下一代的VB也将汲取Java的一些优点,如多线程、异常处理等。

大多数JSP都利用了JavaBean来执行应用中的复杂处理。由于这些组件是可重用的,所以提高了开发效率,并可利用第三方的大量组件;另外,组件的使用也有利于页面中动态和静态的分离,页面设计者和程序开发者可以各司其职。可以说,JSP为分离处理逻辑与表示样式提供了最好的解决方案。

JSP和XML有着内在的结合,JSP的语法本身有两种方式,Java代码(Scriptlets)或者JSP标记。例如,脚本可以被包含在<%和%>之中,或者放在XML标志<jsp:scriptlet>和</jsp:scriptlet>中。JSP可以用于生成XML和HTML页面,对于简单的XML生成,开发人员可以包含XML标识和JSP页面的静态模板部分;对于动态XML生成,则使用基于服务器的对象来生成XML输出的客户化标识。此外,JSP规范也提供了一个机制以便于创建任意JSP页面的一个XML版本。在未来的Web世界中,Java和XML将是相辅相成的,Java为XML提供易于使用的代码,XML为Java提供信息交换的数据和内容。

开发人员可以开发自定义标记库来扩展JSP。这也是JSP规范最近才得以实现的新功能。为常用功能创建自己的标记库,可以使页面设计者能很直观地进行特定功能的开发。工具供应商也将通过为专门的功能提供客户化的标识库而扩展平台的功能。

JSP可以通过采用EJB(EnterpriseJavaBean)技术的可扩展处理,来作为EJB体系结构中的一个中间层。JSP页面和后端资源通过EJB组件进行交互,EJB管理对后端资源的访问。对于电子商务或者其他关键应用,EJB能完成分布式计算、交易处理和安全性控制等任务。这一模型将被J2EE(Java2EnterpriseEdition)平台所支持。J2EE是面向企业级应用的基于组件的多层的分布式的应用模型。JSP和EJB也可以看作是属于J2EE中两个不同的层。因此,作为J2EE体系的一个组成部分,JSP通过和EJB的整合,可以提供企业级的扩展性和性能,从而能够实现高度复杂的Web应用。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有